package com.jfinal.complex.tablesplit.interfaces;

import java.util.Map;

/**
 * 分表工厂接口
 * @author  约黄昏 yuehhfeng@foxmail.com
 *
 */
public interface ITableSplitFactory {
	/**
	 * 判断tableName是否为分表
	 * @param tableName
	 * @return
	 */
	public boolean isTableSplit(String tableName);
	/**
	 * 生成分表查询SQL
	 * @param sql
	 * @param attrs
	 * @return SQL语句
	 */
	public String createQuerySQL(String sql, Map<String, Object> attrs);
	/**
	 * 生成分表名
	 * @param oldTableName
	 * @param attrs
	 * @return 新表名
	 */
	public String createTableName(String oldTableName, Map<String, Object> attrs);
	/**
	 * 工厂是否使用缓存
	 * @return
	 */
	public boolean isUseCache();
	/**
	 * 设置是否使用缓存
	 * @param useCache
	 */
	public ITableSplitFactory setUseCache(boolean useCache);
}
